package com.junzhiit.nengji.app.service;

import java.util.Map;

import com.junzhiit.nengji.app.web.vo.DataTablesParamVO;
import com.junzhiit.nengji.app.web.vo.ResultVO;
import com.junzhiit.nengji.app.web.vo.RoleAEVO;
import com.junzhiit.nengji.app.web.vo.RoleFunctionAddVO;
import com.junzhiit.nengji.app.web.vo.RoleListVO;
import com.junzhiit.nengji.app.web.vo.RoleVO;


public interface RoleService {
	/**
	 * 
	 * TODO 查询所有角色信息
	 * 
	 * @author Qjen
	 * @time 2018年1月24日 下午2:57:13
	 * @return Map<String,Object>
	 *
	 */
	public Map<String, Object> findAll(DataTablesParamVO dtp, RoleVO roleVO);

	/**
	 * 
	 * TODO 查询所有角色
	 * 
	 * @author FebRosy
	 * @time 2018年3月15日 下午1:37:16
	 * @return ResultVO
	 */
	public ResultVO getAll(String sessionId);

	/**
	 * 
	 * TODO 查询所有角色(包含功能)
	 * 
	 * @author FebRosy
	 * @time 2018年3月15日 下午2:29:33
	 * @return ResultVO
	 */
	public ResultVO getAllWithFunction(RoleListVO roleListVO);

	/**
	 * 
	 * TODO 根据ID查询角色信息
	 * 
	 * @author Qjen
	 * @time 2018年1月24日 下午2:57:23
	 * @return ResultVO
	 *
	 */
	public ResultVO findById(String id);

	/**
	 * 
	 * TODO 新增角色
	 * 
	 * @author Qjen
	 * @time 2018年1月24日 下午2:57:33
	 * @return ResultVO
	 *
	 */
	public ResultVO add(RoleAEVO roleVO);

	/**
	 * 
	 * TODO 总部新增角色
	 * 
	 * @author FebRosy
	 * @time 2018年3月16日 下午2:06:02
	 * @return ResultVO
	 */
	public ResultVO addByPlatform(RoleAEVO roleAdd);

	/**
	 * 
	 * TODO 逻辑删除角色
	 * 
	 * @author Qjen
	 * @time 2018年1月24日 下午2:57:43
	 * @return ResultVO
	 *
	 */
	public ResultVO delete(String id);

	/**
	 * 
	 * TODO 修改角色信息
	 * 
	 * @author Qjen
	 * @time 2018年1月24日 下午2:57:54
	 * @return ResultVO
	 *
	 */
	public ResultVO edit(String id, RoleAEVO roleAEVO);

	public int getCountByRoleId(String roleId);

	/**
	 * 
	 * TODO 添加角色相关功能
	 * 
	 * @author FebRosy
	 * @time 2018年3月15日 上午9:15:16
	 * @return int
	 */
	public ResultVO addRoleFunction(RoleFunctionAddVO roleFunctionAddVO);

}
